<?php

class Espace_visiteur extends CI_Controller {

     //constructeur de la classe
     function __construct() {
          parent::__construct();
     }
	 
	 function index(){
     if($this->session->userdata('logged_in')){
          redirect('espace_visiteur/accueil_visiteur','refresh');
     } else {
          redirect('login','refresh');
     }
	 
}

function accueil_visiteur(){
     if($this->session->userdata('logged_in')){
		$info = $this->session->userdata('logged_in');
		if($info['statut'] == "visiteur"){
			 // définition des données variables du template
			$data['title'] = 'Accueil GSB | visiteur';
     
			// on charge la view qui contient le corps de la page
			$data['contents'] = 'accueil_visiteur';
 
			// on charge la page dans le template
			$this->load->view('nav', $data);
		}
	 }
	 else{
	 	redirect('login');
	 }
}



function consulter_visiteur(){
	if($this->session->userdata('logged_in')){
		$info = $this->session->userdata('logged_in');
		if($info['statut'] == "visiteur"){
			 // définition des données variables du template
			$data['title'] = 'Consulter | visiteur';
     
			// on charge la view qui contient le corps de la page
			$data['contents'] = 'consulter_visiteur';
		//$id=$info['id'];
		
		$query = $this->doctrine->em->createQuery("SELECT r FROM rapportvisite r where r.vismatricule= :id");
		$query->setParameter('id', $info['id']);
        $rapports = $query->getResult();
		$data['rapports'] = $rapports;
		
		if(empty($rapports)){
			$data['contents'] = '';
			$data['message'] = 'Vous n\'avez pas encore de rapport de visite.';
		}	
		$this->load->view('nav', $data);
		}
	}
	 else{
	 	redirect('login');
	 }
	
}


function saisie_visiteur(){
	if($this->session->userdata('logged_in')){
		$info = $this->session->userdata('logged_in');
		if($info['statut'] == "visiteur"){
			 // définition des données variables du template
			$data['title'] = 'Saisie | visiteur';
     
			// on charge la view qui contient le corps de la page
			$data['contents'] = 'saisie_visiteur';
		//$id=$info['id'];
		$query = $this->doctrine->em->createQuery("SELECT p FROM praticien p ORDER BY p.pranom ASC");
		$saisies = $query->getResult();
		$data['saisies'] = $saisies;
		
		$query2 = $this->doctrine->em->createQuery("SELECT m FROM medicament m ORDER BY m.mednomcommercial ASC");
		$echantillons = $query2->getResult();
		$data['echantillons'] = $echantillons;
		
		$query3 = $this->doctrine->em->createQuery("SELECT m FROM medicament m ORDER BY m.mednomcommercial ASC");
		$medicaments = $query2->getResult();
		$data['medicaments'] = $medicaments;
		
		$this->load->view('nav', $data);
		}
	}
	 else{
	 	redirect('login');
	 }
}

function validation_saisie(){
$this->form_validation->set_rules('medicament', 'Medicament', 'trim|required|xss_clean');
$this->form_validation->set_rules('praticien', 'Nom du Praticien', 'trim|required|xss_clean');
$this->form_validation->set_rules('motif', 'Motif de visite', 'required');
$this->form_validation->set_rules('autre', 'Autre', 'trim|xss_clean');
$this->form_validation->set_rules('bilan', 'Bilan de la visite', 'trim|required|xss_clean');
$this->form_validation->set_rules('produit[]', 'Echantillons', 'xss_clean');
$this->form_validation->set_rules('check_validation', 'Verification', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('saisie_visiteur');
}
else
{
$data['title']= "Validation";
$data['contents']="";
$data['message'] = 'La saisie a été effectuée avec succès';
$this->load->view('nav', $data);
} 
$rapport = new rapportvisite();
$info = $this->session->userdata('logged_in');
$praticien = explode(" ", $_POST['praticien']);
$query = $this->doctrine->em->createQuery("SELECT p from praticien p WHERE p.pranom=:pranom");
$query->setParameter('pranom', $praticien[0]);
$praticiens = $query->getSingleResult();

$bilan=$_POST['bilan'];
$motif=$_POST['motif'];
if (isset($_POST['autre'])) {
$motif=$_POST['autre'];
}
$medicament=$_POST['medicament'];

$query = $this->doctrine->em->createQuery("SELECT v from visiteur v WHERE v.vismatricule= :vismatricule");
$query->setParameter('vismatricule', $info['id']);
$visiteurs = $query->getSingleResult();

$query = $this->doctrine->em->createQuery("SELECT m from medicament m WHERE m.mednomcommercial= :medic");
$query->setParameter('medic', $medicament);
$medic = $query->getSingleResult();

$date = new \DateTime("now");

$rapport->setVismatricule($visiteurs);
$rapport->setPranum($praticiens);
$rapport->setRapdate($date);
$rapport->setRapbilan($bilan);
$rapport->setRapmotif($motif);
$rapport->setMedicament($medic);

$this->doctrine->em->persist($rapport);
$this->doctrine->em->flush();

$quantites = $_POST['quantite'];
$produits = $_POST['produit'];
$query = $this->doctrine->em->createQuery("SELECT r from rapportvisite r WHERE r.id= :id");
$query->setParameter('id', $rapport->getId());
$rapnum = $query->getSingleResult();

for($i=0;$i<count($produits);$i++){
if(!empty($produits[$i])){
$query = $this->doctrine->em->createQuery("SELECT m from medicament m WHERE m.mednomcommercial= :medic");
$query->setParameter('medic', $produits[$i]);
$medic = $query->getSingleResult();

$echantillion = new offrir();
$echantillion->setVismatricule($visiteurs);
$echantillion->setRapnum($rapnum);
$echantillion->setMeddepotlegal($medic);
$echantillion->setOffqte($quantites[$i]);
$this->doctrine->em->persist($echantillion);
$this->doctrine->em->flush();
}
}
}

function statistiques_visiteur(){
	if($this->session->userdata('logged_in')){
		$info = $this->session->userdata('logged_in');
		if($info['statut'] == "visiteur"){
			 // définition des données variables du template
			$data['title'] = 'Statistiques | visiteur';
     
			// on charge la view qui contient le corps de la page
			$data['contents'] = 'statistiques_visiteur';
		//$id=$info['id'];
		
		
		//Statistique Nombre de visites totales pour le visiteur connecté
		$query1 = $this->doctrine->em->createQuery("SELECT count(u.id) AS total FROM rapportvisite u where u.vismatricule= :id");
		$query1->setParameter('id', $info['id']);
		$statistiques1 = $query1->getSingleResult();
		$data['statistiques1'] = $statistiques1;
		
		//Statistique Nombre d'échantillons totals pour le visiteur connecté
		$query2 = $this->doctrine->em->createQuery("SELECT i,o, sum(o.offqte) AS total FROM rapportvisite i JOIN i.offrir o where i.vismatricule= :id ");
		$query2->setParameter('id', $info['id']);
		$statistiques2 = $query2->getSingleResult();
		$data['statistiques2'] = $statistiques2;
		
		
		//Statistique Nombre de praticiens démarchés pour le visiteur connecté
		$query3 = $this->doctrine->em->createQuery("SELECT count(u.pranum) AS total FROM rapportvisite u where u.vismatricule= :id");
		$query3->setParameter('id', $info['id']);
		$statistiques3 = $query3->getSingleResult();
		$data['statistiques3'] = $statistiques3;
		
		//Statistique Types d'échantillons totals pour le visiteur connecté
		$query4 = $this->doctrine->em->createQuery("SELECT i,o, count(o.id) AS total FROM rapportvisite i JOIN i.offrir o where i.vismatricule= :id ");
		$query4->setParameter('id', $info['id']);
		$statistiques4 = $query4->getSingleResult();
		$data['statistiques4'] = $statistiques4;
		
		//Statistique Nombre de visites totales
		$query5 = $this->doctrine->em->createQuery("SELECT count(u.id) AS total FROM rapportvisite u ");
		$statistiques5 = $query5->getSingleResult();
		$data['statistiques5'] = $statistiques5;

		//Statistique Nombre d'échantillons totals 
		$query6 = $this->doctrine->em->createQuery("SELECT i,o, sum(o.offqte) AS total FROM rapportvisite i JOIN i.offrir o ");
		$statistiques6 = $query6->getSingleResult();
		$data['statistiques6'] = $statistiques6;
		
		//Statistique Nombre de praticiens démarchés 
		$query7 = $this->doctrine->em->createQuery("SELECT count(u.pranum) AS total FROM rapportvisite u ");
		$statistiques7 = $query7->getSingleResult();
		$data['statistiques7'] = $statistiques7;
		
		//Statistique Nombre d'échantillons totals
		$query8 = $this->doctrine->em->createQuery("SELECT i,o, count(o.id) AS total FROM rapportvisite i JOIN i.offrir o");
		$statistiques8 = $query8->getSingleResult();
		$data['statistiques8'] = $statistiques8;
		

		
		$this->load->view('nav', $data);
		}
	}
	 else{
	 	redirect('login');
	 }
}
//fin
}

?>
